﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAO;
using DTO;
using BUS;

namespace GUI
{
    public partial class BaoTapChi : UserControl
    {
        public BaoTapChi()
        {
            InitializeComponent();
        }
        BaoTapChiDTO _baoTC = new BaoTapChiDTO();
        public delegate void GetString(String str);
        public GetString MyGetData;
        private bool CheckDaDien()
        {
            if (tbMaBao.Text == "" || tbTuaDe.Text == ""||cbMaNXB.Text=="")
            {
                return false;
            }
            return true;
        }
        private void UploadData()// tao DTO
        {
            _baoTC.DinhKy = cbDinhKy.Text;
            _baoTC.KhoGiay = cbKhoGiay.Text;
            _baoTC.MaBaoTC = tbMaBao.Text;
            _baoTC.MaNXB = cbMaNXB.SelectedValue.ToString();
            if(cbNamPH.Text=="")
            {
                _baoTC.NamPhatHanh = 0;
            }
            else  _baoTC.NamPhatHanh = Int32.Parse(cbNamPH.Text);
            if(dmUpDownSoTrang.Text=="")
            {
                _baoTC.SoTrang = 0;
            }
            else  _baoTC.SoTrang = Int32.Parse(dmUpDownSoTrang.Text);
            _baoTC.TuaDe = tbTuaDe.Text;
        }

        private void LoadData()
        {
            dGVBaoTapChi.DataSource = BaoTapChiBUS.TimTatCaBaoTC();
            cbMaNXB.DataSource = NhaXuatBanBUS.TimTatCaNXB();
            cbMaNXB.DisplayMember = "Tên NXB";
            cbMaNXB.ValueMember = "Mã NXB";
        }

        private void tbThongBao_TextChanged(object sender, EventArgs e)
        {
            if (MyGetData!=null)
            {
                MyGetData(tbThongBao.Text);
            }
        }
        //Ham thiet ke
        private void BaoTapChi_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (CheckDaDien())
            {
                if (BaoTapChiDAO.CheckBaoTapChiBangID(tbMaBao.Text))
                {
                    tbThongBao.Text = "Mã bị trùng.";
                }
                else
                {
                    UploadData();
                    if (BaoTapChiBUS.ThemBaoTC(_baoTC))
                    {
                        LoadData();
                        tbThongBao.Text = "Thêm thành công.";
                       
                    }
                    else
                    {
                        tbThongBao.Text = "Thêm thất bại";
                    }
                }
            }
            else
            {
                tbThongBao.Text = "Bạn phải điền đầy đủ thông tin.";
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (BaoTapChiDAO.CheckBaoTapChiBangID(tbMaBao.Text))
            {
                if (BaoTapChiBUS.XoaBaoTC(tbMaBao.Text))
                {
                    LoadData();
                    tbThongBao.Text = "Xóa thành công.";
                }
                else
                {
                    tbThongBao.Text = "Xóa thất bại.";
                }
            }
            else
            {
                tbThongBao.Text = "Không tìm thấy cuốn sách muốn xóa.";
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (CheckDaDien())
            {
                UploadData();
                if (BaoTapChiBUS.SuaBaoTC(_baoTC))
                {
                    tbThongBao.Text = "Sửa thành công.";
                    LoadData();
                }
                else
                {
                    tbThongBao.Text = "Sửa thất bại.";
                }
            }
            else
            {
                tbThongBao.Text = "Bạn chưa điền đầy đủ thông tin";
            }
        }

        private void btnRefresh_Click(object sender, EventArgs e)
        {
            LoadData();
            tbMaBao.Text = "";tbTuaDe.Text = "";cbDinhKy.Text = "";
            cbKhoGiay.Text = "";cbMaNXB.Text = "";cbNamPH.Text = "";            
        }

        private void dGVBaoTapChi_SelectionChanged(object sender, EventArgs e)
        {
            if (dGVBaoTapChi.CurrentRow!=null)
            {
                try
                {
                    tbMaBao.Text = dGVBaoTapChi.SelectedRows[0].Cells[0].Value.ToString();
                    cbMaNXB.Text = dGVBaoTapChi.SelectedRows[0].Cells[1].Value.ToString();
                    cbNamPH.Text = dGVBaoTapChi.SelectedRows[0].Cells[2].Value.ToString();
                    cbDinhKy.Text = dGVBaoTapChi.SelectedRows[0].Cells[3].Value.ToString();
                    cbKhoGiay.Text = dGVBaoTapChi.SelectedRows[0].Cells[4].Value.ToString();
                    dmUpDownSoTrang.Text = dGVBaoTapChi.SelectedRows[0].Cells[5].Value.ToString();
                    tbTuaDe.Text = dGVBaoTapChi.SelectedRows[0].Cells[6].Value.ToString();
                }
                catch (Exception)
                {
                                        
                }
            }
        }
        private String TaoMaNgauNhien()
        {
            string returnid = "";
            Random rd = new Random();
            do
            {
                returnid = "BTC" + rd.Next(1, 9999).ToString().PadLeft(3, '0');
                if (returnid.Length > 7)
                {
                    return "";
                }
            }
            while (BaoTapChiDAO.CheckBaoTapChiBangID(returnid));
            return returnid;
        }

        private void cbMaNXB_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
               tbMaBao.Text = TaoMaNgauNhien();
            }
            catch (Exception )
            {
                                
            }
            
        }

        private void cbNamPH_SelectedIndexChanged(object sender, EventArgs e)
        {
         
        }


    }
}
